/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function (s) {
  if (!s) return true;
  let result = [];
  let stringArr = [...s];


  for (let i = 0; i < stringArr.length; i++) {
      if (['(', '{', '['].includes(stringArr[i])) {
          result.push(stringArr[i]);
      } else {
          // 前面一个没有直接是右括号直接返回
          let temp = result.length ? result[result.length - 1] : null;
          if (!temp) {
              return false
          }
          if (')' === stringArr[i] && temp === '(') {
              // 弹出temp
              result.pop()
          }
          else if ('}' === stringArr[i] && temp === '{') {
              // 弹出temp
              result.pop()
          }
          else if (']' === stringArr[i] && temp === '[') {
              // 弹出temp
              result.pop()
          }
          else {
              return false
          }

      }


  };
  return !result.length
}